#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <type_traits>
using namespace std;
template <typename T>
auto process(T value) {
	if constexpr (std::is_integral_v<T>) {
		return value * 2;
	}
	else if constexpr (std::is_floating_point_v<T>) {
		return value / 2;
	}
	else {
		return value;
	}
}
int main() {
	int a = 5;
	float b = 3.5;
	double c = 2.7;
	cout << process(a) << endl; // Output: 10
	cout << process(b) << endl; // Output: 1.75
	cout << process(c) << endl; // Output: 2.7

	return 0;
}